#ifndef map_hpp
#define map_hpp

#include <allegro.h>
#include "main.hpp"
#include <vector>
#include "eq.hpp"

class cTileInfo
{
    public:
        bool wall;//czy kafel jest ścianą
};

class cMap
{
    private:
        BITMAP * tex_green;
        cItemResources * itemInfo;//informacje o itemkach

        void loadTile();//ladowanie informacji o kafelkach

    public:
        BITMAP * tex;//tekstura mapy
        int ** map;//mapa (ID kafelkow)
        int ** map_green; //zielen a mapie

        bool ** fogOfWar;//mgła wojenna
        bool fogOn;//czy mgla jest wlaczona
        sPoint * shift;//przesuniecie mapy
        sPoint * size;//rozmiar mapy w kadelkach
        std::vector <cTileInfo> tile;//dane kafli (jak narazie tylko kolizje)
        std::vector <cItemOnMap> items;//itemy na ziemii, ktore mozna podniesc
        std::string * transition; //przejscia na inne mapy .
        int countoftransitions;

        void delete_current_map();
        void load(const char * name);//laduje mape z pliku
        void generate();//generuje mape
        void draw(BITMAP * bufor, sPoint * show);//rysuje mape
        bool isOnMap(sPoint p);//zwraca czy punkt jest na mapie

        void addItem(int x, int y, int id, int count);

        cMap(cItemResources * itInfo);//c-structor
        ~cMap();//d-structor
};

#endif
